package club.service;

import club.pojo.Admins;
import com.github.pagehelper.PageInfo;

// 管理员服务接口
// 定义了管理员相关业务操作的方法签名

public interface AdminService {

    /**
     * 分页查询管理员列表（支持按用户名模糊搜索）
     * @param adminName 管理员用户名（可选，用于模糊查询）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页结果对象，包含管理员列表及分页信息
     */
    PageInfo<Admins> adminPage(String adminName, Integer pageNum, Integer pageSize);

    /**
     * 根据ID查询管理员
     * @param id 管理员ID
     * @return 管理员对象，不存在则返回null
     */
    Admins findById(Integer id);

    /**
     * 管理员登录验证
     * @param adminName 用户名
     * @param adminPwd 密码
     * @return 登录成功返回管理员对象，失败返回null
     */
    Admins login(String adminName, String adminPwd);

    /**
     * 分页查询所有管理员（方法未实现，直接返回null）
     * @param adminsName 管理员用户名（可选，用于模糊查询）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页结果对象
     */
    PageInfo<Admins> allAdmin(String adminsName, int pageNum, int pageSize);

    /**
     * 添加新管理员
     * @param admins 管理员对象
     * @return 插入成功返回1，失败返回0
     */
    int add(Admins admins);

    /**
     * 更新管理员信息
     * @param admins 管理员对象（需包含ID）
     * @return 更新成功返回1，失败返回0
     */
    int update(Admins admins);

    /**
     * 根据ID删除管理员
     * @param id 管理员ID
     * @return 删除成功返回1，失败返回0
     */
    int del(Integer id);
}